.. |gKnop_ic| image:: Img/gKnop.png .. _Руководство по работе с ключевыми словами: ########################################### Руководство по работе с ключевыми словами. ########################################### Ключевые слова - переменные, которые могут использоваться в различных частях приложения для генерации значений, актуальных на момент выполнения операции. Ключевые слова используются в следующих разделах приложения: * Каталог услуг * Домашняя страница * Формы * Фильтры консолей * Сайдбары (в операциях, связанных с элементами сайдбара). .. note:: Например, при добавлении пользователем ключевого слова $CURRENT_USER$ в настройки сайдбара в приложении значение ключевого слова будет отображаться как текущий пользователь (Иван Иванов при входе в Систему под логином/паролем Ивана Иванова). В приложении поддерживаются следующие типы ключевых слов: *Системные ключевые слова* Ключевые слова, заданные на уровне приложения *Настраиваемые ключевые слова* Ключевые слова, задаваемые администратором в настройках *Программируемые ключевые слова* Ключевые слова, программируемые разработчиком в скриптах. **************************** Системные ключевые слова. **************************** **Ключевые слова для даты и времени.** В Системе реализована отдельная категория ключевых слов для даты и времени. При разрешении всех значений даты и времени (например, в одном запросе, в одном выражении) обеспечено формирование значения на основе одной и той же временной отметки. Например, $DATE$ и $DAY_AGO$ будут иметь одно и тоже значение часов, минут, секунд и миллисекунд. Следует обратить внимание, что отсчёт от единой временной отметки не будет соблюдаться при последовательном вызове разных значений по отдельности (используя метод getValue плагина $kw). **Ключевые слова для даты и времени.** * $DATE$ - Дата. * $DATE_MS$ - Дата в миллисекундах. * $HOUR_START$ - Начало текущего часа в формате ISO. * $HOUR_START_MS$ - Начало текущего часа в миллисекундах. * $DAY_START$ - Начало дня. * $DAY_START_MS$ - Начало дня в миллисекундах. * $DAY_AGO$ - День назад. * $DAY_AGO_MS$ - День назад в миллисекундах. * $WEEK_START$ -Начало недели. * $WEEK_START_MS$ - Начало недели в миллисекундах. * $MONTH_START$ - Начало месяца. * $MONTH_START_MS$ - Начало месяца в миллисекундах. **Ключевые слова контекста.** Ключевые слова контекста получают значения из свойств контекста приложения и имеют префикс CTX (за исключением ключевых слов $SYSTEM_USER$ и $SYSTEM_USER_SN$, которые имеют такие имена традиционно). Сейчас доступны следующие ключевые слова свойств контекста: * $CTX_PAGE_TYPE$ - тип страницы (например, catalog, form). Допустимые типы описаны ниже. "login" - на странице входа в Систему. "home" - на домашней странице (/home). "catalog" - на странице каталога услуг (/catalog). "console" - на странице консоли (/console/). "form" - на странице формы (/form/). "dashboard" - на странице инструментальной панели (/dashboard/). "form-editor" - на странице редактирования формы (в режиме администратора, /admin/forms/). "undefined" - на странице, которая отсутствует в вышеприведённом списке. * $CTX_ENTITY_ID$ - ID текущей записи (если форма - записи схемы, если консоль - ID консоли и т.д.). * $CTX_IS_ADMIN$ - Признак, является ли пользователь администратором (true/false). * $CTX_LOCALE$ - Код текущей локали (например, en, ru). * $CTX_IS_MOBILE$ - Признак, запущено ли приложение на мобильном устройстве (true/false). * $CTX_IS_TABLET$ - Признак, запущено ли приложение на планшете (true/false). * $CTX_IS_DESKTOP$ - Признак, запущено ли приложение на устройстве с большим монитором (компьютер, ноутбук) (true/false). * $SYSTEM_USER$ - Логин пользователя, вошедшего в Систему. * $SYSTEM_USER_SN$ - Информация из свойства SN записи пользователя (например, "Иван Иванов"). **Ключевые слова формы.** Ключевые слова формы доступны только если приложение находится на странице формы, в ином случае на любое значение ключевого слова формы будет возвращена пустая строка. Ключевое слово формы состоит из префикса FORM и идентификатора поля формы, значение из которого будет являться значением этого ключевого слова. Например, в форме инцидентов /form/schm001_form_0001/INC000000004051 следующие ключевые слова будут иметь соответствующие значения: { $FORM_in_003_004$: "TEST INCIDENT Bob Baxter Устранение неполадок подключения к сети в браузере Internet Explorer ", $FORM_0e82c9ff-74c2-3154-8be0-5e36c88dcf27$: "1114 Eighth Avenue, 31st Floor." } ************************ Настройка Ключевых слов. ************************ В правом верхнем углу нажать поле с именем пользователя, в всплывающем меню выбрать пункт *Настройки* и в левом нижнем углу нажать пункт меню *Ключевые слова* (:numref:`33Pic1`). Откроется форма настройки "Ключевые слова". .. _33Pic1: .. figure:: Img/gOtkr.png :scale: 80 % :align: center *Открытие формы настройки Ключевых слов* Форма настройки ключевых слов содержит следующие элементы (:numref:`33Pic2`): * Панель **Текущие ключевые слова**. Содержит список уже настроенных ключевых слов. * Кнопка **Добавить ключевое слово** на панели **Текущие ключевые слова**. Позволяет открыть форму ввода нового ключевого слова. * Флаг **Глобальное**. Включенный флаг «Глобальное» означает, что свойство является системным и изменить его может только Администратор, применительно ко всей Системе. Выключенный флаг «Глобальное» означает, что свойство является не системным, а пользовательским, то есть доступным для изменения Пользователем. * Кнопка **Удалить свойство**. При нажатии кнопки происходит удаление уже настроенных ключевых слов. * Кнопка **ПОДТВЕРДИТЬ** в правом нижнем углу формы позволяет подтвердить и сохранить изменения. * Кнопка **ОТМЕНА** в правом нижнем углу формы позволяет отменить изменения. .. _33Pic2: .. figure:: Img/gForm.png :scale: 80 % :align: center *Форма настройки Ключевых слов* **Редактирование существующего ключевого слова** При нажатии на кнопку ключевого слова на панели **Текущие ключевые слова** открывается форма редактирования ключевого слова (:numref:`33Pic3`). .. _33Pic3: .. figure:: Img/gRedac.png :scale: 80 % :align: center *Форма редактирования ключевого слова* Форма редактирования ключевого слова содержит следующие поля: * Поле **Наименование** - содержит наименование ключевого слова. * Поле **Описание** - краткое описание ключевого слова. * Поле **Код** - может содержать как имя переменной, например, имя переменной SUB ключевого слова $CTX_USER_SUB$, так и код, например, {{ new Date().toLocaleString() }} - отображает локальную дату. Сохранение изменений в форме редактирования ключевого слова происходит при нажатии клавиши **ОТПРАВИТЬ** в правом нижнем углу формы (:numref:`33Pic3`). Выход без сохранения осуществляется при нажатии кнопки **ОТМЕНА** в правом нижнем углу формы (:numref:`33Pic3`). **Создание ключевого слова** При нажатии кнопки создания ключевого слова |gKnop_ic| открывается форма создания нового ключевого слова (:numref:`33Pic4`). .. _33Pic4: .. figure:: Img/gNov.png :scale: 80 % :align: center *Форма создания ключевого слова* Заполнение формы создания ключевого слова проводится аналогично заполнению формы редактирования ключевого слова. ************************************************ Программируемые ключевые слова ************************************************ Описание процесса создания программируемых ключевых слов описано в :numref:`KEYWORDS Script API` Руководства разработчика. ************************************** Использование ключевых слов в Системе. ************************************** ======================================== Использование ключевых слов в сайдбарах. ======================================== Использование ключевых слов в сайдбарах зависит от типа элемента сайдбара. Ключевые слова могут использоваться в следующих типах элементов: * Внутренняя ссылка с параметрами * URL c параметрами .. note:: Ключевые слова могут использоваться при формировании адресной строки и в значениях простых параметров. ============================================= Использование ключевых слов в Каталоге услуг. ============================================= В Каталоге услуг ключевые слова используются при построении строки URL в карточке услуги (:numref:`33Pica9`). .. _33Pica9: .. figure:: Img/hSTU.png :scale: 80 % :align: center *Строка URL* В качестве примера можно привести строку URL http://cbr.ru/currency_base/daily/?UniDbQuery.Posted=True&UniDbQuery.To={{ new Date($DAY_AGO_MS$).toLocaleDateString() }} Услуга открывает страницу Банка России с курсом валют на дату "Вчера" (:numref:`33Pica10`). .. _33Pica10: .. figure:: Img/hKurs.png :scale: 80 % :align: center *Курс валют на дату Вчера* Внутри описано JavaScript-выражение, которое будет вычислено и вместо него подставится результат вычисления. Внутри выражения используется ключевое слово $DAY_AGO_MS$, определяющее дату, предшествующую дате "Сегодня". При обработке выражения сначала будут заменены ключевые слова в выражении, а потом произойдёт вычисление. Так же возможно "прямое" использование ключевого слова, вне JavaScript-выражения (:numref:`33Pica11`). .. _33Pica11: .. figure:: Img/hKurs3.png :scale: 80 % :align: center *Курс валют на дату, предшествующую дате "Сегодня" на три дня* Так, в строке URL http://cbr.ru/currency_base/daily/?UniDbQuery.Posted=True&UniDbQuery.To=$PROG$ используется ключевое слово $PROG$, определяющее дату, предшествующую дате "Сегодня" на три дня. Преобразуется ключевое слово в элемент строки URL в карточке каталога при переходе по URL. ==================================== Использование ключевых слов в Форме. ==================================== В форме можно вставить ключевое слово в любое поле текстового ввода и оно должно будет преобразовано при сохранении формы. """"""""""""""""""" Вкладка Компоненты. """"""""""""""""""" Компонент формы для текстового ввода - *input*. Для текстового ввода данных в компонент *input* используются следующие поля: * `Параметры`_. * `Вычисляемое`_. * `Действие`_. * `Видимый на`_. .. _Параметры: **Поле Параметры.** В поле "Параметры" указываются конфигурации для внешних скриптов (зависимостей). Перечень конфигураций указывается в формате JSON. Пример использования *Ключевых слов* в поле "Параметры" представлен ниже (:numref:`33Pica12`): .. _33Pica12: .. figure:: Img/wParam.png :scale: 80 % :align: center *Пример использования Ключевых слов в поле Параметры* Здесь строка "url": "http://$File_Way$/MapLogger.js" эквивалентна строке "url": "http://forms/currency_base/daily/MapLogger.js". Посредством Ключевого слова $File_Way$ в данном случае задается путь к файлу внешнего скрипта, т.е., Ключевое слово $File_Way$ заменяет выражение forms/currency_base/daily. .. _Вычисляемое: **Поле Вычисляемое.** В данном поле задается вычисляемое значение. Вычисляемое значение вычисляется на основе значений других полей. Условие, по которому вычисляется значение, указывается в формате JSON (:numref:`33Pica13`). .. _33Pica13: .. figure:: Img/wVich.png :scale: 80 % :align: center *Пример использования Ключевых слов в поле Вычисляемое* В данном случае полю default по-умолчанию присваивается значение кода текущей локали (Ключевое слово $CTX_LOCALE$), которое используется в случае ошибок вычисления. .. _Действие: **Поле Действие.** В этом поле можно указать действие в формате JSON, которое будет выполнятся при определенных условиях. Пример использования *Ключевых слов* в поле "Действие" представлен ниже (:numref:`33Pica14`): .. _33Pica14: .. figure:: Img/WDeis.png :scale: 80 % :align: center *Пример использования Ключевых слов в поле Действие* Здесь Ключевое слово $field_value$ указывает на строку *form_field":"in_009_015","schema":"people","field":"full_name*, которая выводит данные на элемент формы. .. _Видимый на: **Поле Видимый на.** В поле указывается условие видимости для элемента. Пример использования *Ключевых слов* в поле "Видимый на" представлен ниже (:numref:`33Pica15`): .. _33Pica15: .. figure:: Img/wVid.png :scale: 80 % :align: center *Пример использования Ключевых слов в поле Видимый на* Здесь указано следующее: данный компонент будет отображаться на форме, только если у другого компонента формы, имеющего идентификатор «ID текущей записи» (Ключевое слово $CTX_ENTITY_ID$), значение будет равным «123». То есть данный компонент будет виден или скрыт в зависимости от значения в другом компоненте формы. """"""""""""""""""" Вкладка Параметры. """"""""""""""""""" Вкладка «Параметры» используется для указания шаблона, по которому создается запись. Пример заполнения вкладки «Параметры» (:numref:`33Pica16`): .. _33Pica16: .. figure:: Img/wParametrs.png :scale: 80 % :align: center *Пример использования Ключевых слов в вкладке Параметры* В данном случае Ключевое слово $CTX_ENTITY_ID$ - ID текущей записи - используется как идентификатор шаблона. """""""""""""""""""""""""""""""""""""""""""""""""""""""""" Использование ключевых слов при заполнении значений формы. """""""""""""""""""""""""""""""""""""""""""""""""""""""""" Ключевые слова возможно использовать при заполнении значений полей формы. Ключевое слово на форме можно применить в любом поле текстового ввода. Пример использования *Ключевых слов* при заполнении значений полей формы представлен ниже (:numref:`33Pica17`): .. _33Pica17: .. figure:: Img/wForm.png :scale: 80 % :align: center *Пример использования Ключевых слов при заполнении значений полей формы* Здесь в поле "Содержание" использовано ключевое слово $SYSTEM_USER_SN$ во фразе "Описание инцидента. Автор: $SYSTEM_USER_SN$". После сохранения формы и обновления данных в поле "Содержание" будет фраза "Описание инцидента. Автор: Иван Иванов". То есть, ключевое слово при сохранении будет заменено его значением.